读写CSV数据

【问题描述】

使用pandas提供的函数和方法实现CSV文件数据的读取和写入。

【示例2-4】

要导入的CSV文件的完整路径为“D:/Samples/ch02/03 CSV数据导入导出/关键词搜索指数.csv”。该文件打开后如图2-3所示,是很多商品名称作为关键字得到的搜索指数。本例用pandas导入前6行数据,并将导入的数据导出到相同路径下的“关键词搜索指数2.csv”中。

Document Image

图2-3 关键词搜索指数

  • 编写下面的代码:
code.python
import pandas as pd
import os
# 定义CSV文件路径
csv_path = "D:/Samples/ch02/03 CSV数据导入导出/关键词搜索指数.csv"
# 使用pandas读取CSV文件前6行数据,编码方式为"gbk"
data = pd.read_csv(csv_path, encoding="gbk", nrows=6)
# 输出导入的数据
print(data)
# 获取CSV文件所在目录的完整路径
folder_path = os.path.dirname(os.path.abspath(csv_path))
# 将导入的数据保存到该路径下的“关键词搜索指数2.csv”中,编码方式为"gbk"
output_path = os.path.join(folder_path, "关键词搜索指数2.csv")
data.to_csv(output_path, index=False, encoding="gbk")

打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出导入的数据,并且该数据被保存到与给定数据文件相同路径下的“关键词搜索指数2.csv”中。

code.python
>>> == RESTART: D:/samples/ 1.py =
   排名      关键词  搜索指数  全站商品数
0   1  三谷慕斯沐浴露   396     25
1   2   蓝月亮洗手液   289     47
2   3    植然魅发膜   260     17
3   4    约肤搓泥宝   260     15
4   5    韩缪水蜜桃   238     42
5   6    修正洗发水   224     39

【知识点扩展】

本例中导入CSV文件的数据使用了pandas的read_csv函数,将导入的数据导出到CSV文件时使用了DataFrame对象的to_csv方法。下面介绍read_csv函数和to_csv方法的语法格式。

  • pandas的read_csv函数

pandas中用read_csv函数读取CSV文件数据,该函数常用参数的意义如表2-2所示。使用这些参数可以对导入CSV文件数据进行更精细的控制。

表2-2 read_csv函数的常用参数

参 数 说 明
filepath Excel文件的路径和名称
sep 指定分隔符,默认时使用逗号作为分隔符
header 指定用哪行数据作为索引行,如果是多层索引,用多行的行号组成列表进行指定
index_col 指定用哪列数据作为索引列,如果是多层索引,用多列的列号或名称组成列表进行指定
usecols 如果只需要导入原始数据中的部分列数据,使用该参数用列表进行指定
dtype 用字典指定特定列的数据类型,如{"A":np.float64 }指定A列的数据类型为64位浮点型
prefix 在没有列标签时,给列添加前缀,例如,添加"Col"称为Col0, Col1, Col2等
skiprows 指定读入时忽略前面多少行
skipfooter 指定读入时忽略后面多少行
nrows 指定需要读取的行数
names 用列表指定列的列索引标签
encoding 指定编码方式,默认时为UTF-8,还可以指定为gbk等

  • DataFrame对象的to_csv方法

使用DataFrame对象的to_csv方法将数据导出到指定的CSV文件。用path_or_buf参数指定导出文件的路径和名称,用sep参数指定分隔符。